﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Encapsulation_classwork
{
    class Program
    {
        static public bool run = false;

        static void Main(string[] args)
        {
        Bank bank = new Bank("Банчик");
           
            do
            {

                Console.WriteLine("Пожалуйста, выберите операцию:");
                Console.WriteLine("1 - Открыть счёт;");
                Console.WriteLine("2 - Закрыть счёт;");
                Console.WriteLine("3 - Выдача наличных со счёта;");
                Console.WriteLine("4 - Внесение суммы на счёт;");
                Console.WriteLine("5 - Вывести баланс на экран.");
                int choice = Int32.Parse(Console.ReadLine());


                if (choice != 1 && choice != 2 && choice != 3 && choice != 4 && choice != 5)
                {
                    Console.WriteLine("Ошибка! Выберите корректное действие:");
                    Run();
                }
                else if (choice == 1)
                {
                    Account account = bank.CreateAccount();
                    Console.WriteLine("Счёт создан. Id счёта - {0}, средства на счёту - 0.", account.accountId);
                    Run();
                }
                else if (choice == 2)
                {
                    Console.WriteLine("Введите номер счёта, который Вы хотите закрыть:");
                    int accountToDelete = Int32.Parse(Console.ReadLine());
                    bool success = bank.FindAndDeleteAccount(accountToDelete);
                    if (success)
                    {
                        Console.WriteLine("Ваш аккаунт был успешно удалён.");
                    }
                    else
                    {
                        Console.WriteLine("Ваш аккаунт не был найден :(");
                    }
                    Run();
                }
                else if (choice == 3)
                {
                    Console.WriteLine("Введите номер счёта, с которого Вы хотите получить средства:");
                    int accountIdChoice = Int32.Parse(Console.ReadLine());
                    Console.WriteLine("Введите сумму наличных, которые Вы хотите обналичить:");
                    int cashToTake = Int32.Parse(Console.ReadLine());
                    if (!bank.ShutUpAndTakeMyMoney(accountIdChoice, cashToTake))
                    {
                        Console.WriteLine("Аккаунт не был найден.");
                    }
                    Run();
                }
                else if (choice == 4)
                {
                    Console.WriteLine("Введите номер счёта:");
                    int accountIdChoice = Int32.Parse(Console.ReadLine());
                    Console.WriteLine("Внесите сумму в купюроприёмник.");
                    int money = Int32.Parse(Console.ReadLine());
                    if (!bank.DepositMoney(accountIdChoice, money))
                    {
                        Console.WriteLine("Аккаунт не был найден.");
                    }
                    Run();
                }
                else 
                {
                    Console.WriteLine("Введите номер счёта:");
                    int accountIdChoice = Int32.Parse(Console.ReadLine());
                    if (!bank.PrintAccountCash(accountIdChoice))
                    {
                        Console.WriteLine("Аккаунт не был найден.");
                    }
                    Run();
                }

            } while (run);
        
         
    }
        static public void Run()
        {
            Console.WriteLine("Хотите продолжить? Y/N");
            string choice = Console.ReadLine().ToUpper();
            do
            {
                if (choice != "Y" && choice != "N")
                {
                    Console.WriteLine("Неправильно. Попробуйте еще раз.");
                }
                else
                {
                    break;
                }
            }
            while (true);
            if (choice == "N")
            {
                run = false;
            }
            else
            {
                run = true;
            }
            }

    }
}
